inspector: Fix quick-fix
authorBenjamin Otte <otte@redhat.com>
Tue, 15 Dec 2015 00:14:57 +0000 (01:14 +0100)
committerBenjamin Otte <otte@redhat.com>
Tue, 15 Dec 2015 00:15:51 +0000 (01:15 +0100)
Constructing GtkCssStyleChange objects without styles is forbidden, so
don't do it. Instead untangle the callback from the actual update
function and call that untangled function directly.

gtk/inspector/css-node-tree.c

index 8812398d3b24d793b56ac0258ed26ab10d2b9f87..f1682cd8a3fd2343a041ef3a32ac9ccd7222e74f 100644 (file)
@@ -532,16 +532,12 @@ gtk_inspector_css_node_tree_set_object (GtkInspectorCssNodeTree *cnt,
 }
 
 static void
-gtk_inspector_css_node_tree_update_style (GtkCssNode              *node,
-                                          GtkCssStyleChange       *change,
-                                          GtkInspectorCssNodeTree *cnt)
+gtk_inspector_css_node_tree_update_style (GtkInspectorCssNodeTree *cnt,
+                                          GtkCssStyle             *new_style)
 {
   GtkInspectorCssNodeTreePrivate *priv = cnt->priv;
-  GtkCssStyle *new_style;
   gint i;
 
-  new_style = gtk_css_style_change_get_new_style (change);
-
   for (i = 0; i < _gtk_css_style_property_get_n_properties (); i++)
     {
       GtkCssStyleProperty *prop;
@@ -583,12 +579,19 @@ gtk_inspector_css_node_tree_update_style (GtkCssNode              *node,
     }
 }
 
+static void
+gtk_inspector_css_node_tree_update_style_cb (GtkCssNode              *node,
+                                             GtkCssStyleChange       *change,
+                                             GtkInspectorCssNodeTree *cnt)
+{
+  gtk_inspector_css_node_tree_update_style (cnt, gtk_css_style_change_get_new_style (change));
+}
+
 static void
 gtk_inspector_css_node_tree_set_node (GtkInspectorCssNodeTree *cnt,
                                       GtkCssNode              *node)
 {
   GtkInspectorCssNodeTreePrivate *priv = cnt->priv;
-  GtkCssStyleChange change;
   GString *s;
   GType type;
   const gchar *name;
@@ -601,21 +604,13 @@ gtk_inspector_css_node_tree_set_node (GtkInspectorCssNodeTree *cnt,
   if (node)
     g_object_ref (node);
 
-  gtk_css_style_change_init (&change,
-                             node ? gtk_css_node_get_style (node) : NULL,
-                             priv->node ? gtk_css_node_get_style (priv->node) : NULL);
-
-  gtk_inspector_css_node_tree_update_style (node,
-                                            &change,
-                                            cnt);
-
-  gtk_css_style_change_finish (&change);
+  gtk_inspector_css_node_tree_update_style (cnt, node ? gtk_css_node_get_style (node) : NULL);
 
   gtk_inspector_css_node_tree_unset_node (cnt);
 
   priv->node = node;
 
-  g_signal_connect (node, "style-changed", G_CALLBACK (gtk_inspector_css_node_tree_update_style), cnt);
+  g_signal_connect (node, "style-changed", G_CALLBACK (gtk_inspector_css_node_tree_update_style_cb), cnt);
 
   s = g_string_new ("");
   type = gtk_css_node_get_widget_type (node);